import type { ProductCreateDto, ProductUpdateDto, ProductListDto, ProductSingleDto } from "@/dtos/product.dto";
import type { PageRequest } from "@/types"; // 导入 PageRequest 类型
import http from "@/utils/http";

/**
 * 获取产品列表
 * @param params - 分页参数
 * @returns 包含产品列表、总数和总页数的对象
 */
export function getProductListApi(params: PageRequest) {
  return http.get<any, { list: ProductListDto[]; total: number; pages: number }>("/products", { params });
}

/**
 * 获取单个产品
 * @param productId - 产品ID
 * @returns 产品的详细信息
 */
export function getProductApi(productId: string) {
  return http.get<any, ProductSingleDto>(`/products/${productId}`);
}

/**
 * 创建产品
 * @param data - 产品创建数据
 * @returns 创建成功的布尔值
 */
export function createProductApi(data: ProductCreateDto) {
  return http.post<any, boolean>("/products", data);
}

/**
 * 更新产品
 * @param productId - 产品ID
 * @param data - 产品更新数据
 * @returns 更新成功的布尔值
 */
export function updateProductApi(productId: string, data: ProductUpdateDto) {
  return http.put<any, boolean>(`/products/${productId}`, data);
}

/**
 * 删除产品
 * @param productId - 产品ID
 * @returns 删除成功的布尔值
 */
export function deleteProductApi(productId: string) {
  return http.delete<any, boolean>(`/products/${productId}`);
}